Machine Learning - L1~L3 Notes

Contents

  1. 1. 前言
  2. 2. Learning Map (L1)
  3. 3. Regression: Case Study (L2)
    1. 3.1. Regularization
  4. 4. Gradient Descent (L3)
    1. 4.1. Adaptive Learning Rates
      1. 4.1.1. Adagrad
    2. 4.2. Stochastic Gradient Descent
    3. 4.3. Feature Scaling
    4. 4.4. Gradient Descent 原理

前言

同樣是 李宏毅 教授的課程 Machine Learning (2016,Fall)
稍作簡易筆記。

Learning Map (L1)

1-27

在其餘 scenario 內也是可以做 Supervised Learning 裡的 task、method。

Transfer learning : 大致上就是利用已訓練好的模型來幫助新的訓練,這樣新的就不用從零開始訓練了。

focuses on storing knowledge gained while solving one problem and applying it to a different but related problem. For example, knowledge gained while learning to recognize cars could apply when trying to recognize trucks. - wikipedia

Reinforcement learning : 不像一般的訓練有輸入輸出,以下圖例子來看,就是直接下去與人對話,在依人的反應來判斷機器回應得好不好。

1-25

Regression: Case Study (L2)

這邊影片有再解釋一下 Gradient Descent ,蠻清楚的。

2-26

越複雜的 model 可能在 training data 有更好的表現,但在 testing data 上卻不一定會更好,也就是 Overfitting 的問題。

這邊提到一個解決 overfitting 的方法,除了增加資料以外,還可以使用 Regularization

Regularization

2-34

圖中的 L 就是 loss function (功用如同之前的 cost function,越小越好)。我們在其後加上了一項,我們也希望它能越小越好。

這用意在於我們想要比較 smooth 的 function,也就是對於輸入的變化比較不敏感。$w_i$ 越接近 0 ,輸出對輸入就越不敏感。
我們就比較不會受一些雜訊所干擾而大幅的影響訓練出來的結果,太平滑的 function 也會失去其效果。
(此項不用考慮 bias 是因為其不影響 function 的平滑度)

接著是例子中使用此方法後的結果:

2-35

loss function 中有考慮原本的 errorsmooth ,當 $\lambda$ 越大時,代表找出來的 function 越平滑。

明顯可以看到隨著 $\lambda$ 變大 ,training data 的 error 也越來越大,因為我們考慮 error 的部分變小了。但在 testing data 的部分則不然。

Gradient Descent (L3)

可以看一下之前的筆記( Deep and Structured - L2) Gradient Descent 的部分,這邊不再重寫。

這邊介紹了幾個小 tip 來增進 Gradient Descent 的效果。

Adaptive Learning Rates

3-6

根據不同的參數給予不同的 learning rate ,一開始離目標很遠, learning rate 較大;開始接近目標後,就減小 learning rate 。

Adagrad

根據先前的結果來更改 learning rate。
$\sigma^t$ 是先前所有微分的 root mean square 。 $\eta^t$ 則會隨著 update 的次數變小。

3-7

3-8

化簡 $\sqrt{t+1}$

3-9

這裡可以發現一件事越大的 $g^t$ 代表越陡峭會有越大的步伐,可是在分母卻會導致步伐變小。
這邊直觀的解釋是造成 反差 的效果,雖然這次的值一樣,但之前出來的值($g^t$)的大小卻會影響這次的效果。
ex.10.1 10.2 10.3 0.1
ex.0.0001 0.0001 0.0001 0.1

(還有更正式的解釋在影片)

Stochastic Gradient Descent

( Deep and Structured - L2 )

Feature Scaling

我們希望不同的 feature 分布範圍差不多。

3-22

原因在於,如果某項( $x_i$ )特別大的話,會導致其 $w_i$ 對 輸出 的影響變大,反之則是變小。

3-23

在還沒 scaling 時可以看到圖中 loss function ,在 $w_1$ 的方向比較平滑,在 $w_2$ 的方向比較陡峭。
scaling 後圖形呈現一個正圓,這樣在 update 時會比較容易朝著目標前進(圓心)。

其中一種 scaling 的方法就是 標準化(standardizing) ,每個 data 的第 i 項減掉 全部 data 第 i 項的平均再除以它們的標準差。

3-24

Gradient Descent 原理

之前 Taylor Series 的部分( Deep and Structured - L2 )。

這邊多說明一下這張圖:

3-34

為了使 $L(\theta)$ 的值最小,我們可以將 $(u,v)$ 和 $(\Delta{\theta_1},\Delta{\theta_2})$ 看成兩個向量。不用管 $s$,因為 $\theta$ 並不影響它。
然後兩向量做內積的值就會等於 $L(\theta)$ 。

要讓此內積的值最小,就是讓它們夾 180 度 ( $cos(\pi)=-1$ )。
$(\Delta{\theta_1},\Delta{\theta_2})$ 的方向就是 $(u,v)$ 的反方向,然後調整長度到 d 的邊界,也就是乘上某個 constant( $-1 \times \eta$ )。
最後要找到那一個使 $L(\theta)$ 最小的點,就是利用圓點 $(a,b)$ 加上剛剛算出來的向量。

而這結果要精確取決於紅色圈圈的大小($d$),直接的影響了 learning rate ,它們的值要 足夠小

3-35